#include "gtkwidgetpath.h"
#include "gtkboxgadgetprivate.h"
#include "gtkbuiltiniconprivate.h"
+#include "gtkcontainerprivate.h"
#include "gtkcsscustomgadgetprivate.h"
#include "gtkcssstylepropertyprivate.h"
#include "gtksizerequest.h"
int *natural_baseline);
static void gtk_notebook_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
-static gboolean gtk_notebook_draw (GtkWidget *widget,
- cairo_t *cr);
+static void gtk_notebook_snapshot (GtkWidget *widget,
+ GtkSnapshot *snapshot);
static gboolean gtk_notebook_popup_menu (GtkWidget *widget);
static gboolean gtk_notebook_enter_notify (GtkWidget *widget,
GdkEventCrossing *event);
int baseline,
GtkAllocation *out_clip,
gpointer data);
-static gboolean gtk_notebook_draw_tabs (GtkCssGadget *gadget,
- cairo_t *cr,
+static gboolean gtk_notebook_snapshot_tabs (GtkCssGadget *gadget,
+ GtkSnapshot *snapshot,
int x,
int y,
int width,
int baseline,
GtkAllocation *out_clip,
gpointer data);
-static gboolean gtk_notebook_draw_stack (GtkCssGadget *gadget,
- cairo_t *cr,
+static gboolean gtk_notebook_snapshot_stack (GtkCssGadget *gadget,
+ GtkSnapshot *snapshot,
int x,
int y,
int width,
widget_class->unrealize = gtk_notebook_unrealize;
widget_class->measure = gtk_notebook_measure;
widget_class->size_allocate = gtk_notebook_size_allocate;
- widget_class->draw = gtk_notebook_draw;
+ widget_class->snapshot = gtk_notebook_snapshot;
widget_class->popup_menu = gtk_notebook_popup_menu;
widget_class->enter_notify_event = gtk_notebook_enter_notify;
widget_class->leave_notify_event = gtk_notebook_leave_notify;
NULL,
gtk_notebook_measure_stack,
gtk_notebook_allocate_stack,
- gtk_notebook_draw_stack,
NULL,
+ gtk_notebook_snapshot_stack,
NULL,
NULL);
gtk_css_gadget_set_state (priv->stack_gadget, gtk_css_node_get_state (widget_node));
NULL,
gtk_notebook_measure_tabs,
gtk_notebook_allocate_tabs,
- gtk_notebook_draw_tabs,
NULL,
+ gtk_notebook_snapshot_tabs,
NULL,
NULL);
gtk_css_gadget_set_state (priv->tabs_gadget, gtk_css_node_get_state (widget_node));
* gtk_notebook_unmap
* gtk_notebook_realize
* gtk_notebook_size_allocate
- * gtk_notebook_draw
+ * gtk_notebook_snapshot
* gtk_notebook_scroll
* gtk_notebook_popup_menu
* gtk_notebook_enter_notify
}
static gboolean
-gtk_notebook_draw_stack (GtkCssGadget *gadget,
- cairo_t *cr,
- int x,
- int y,
- int width,
- int height,
- gpointer unused)
+gtk_notebook_snapshot_stack (GtkCssGadget *gadget,
+ GtkSnapshot *snapshot,
+ int x,
+ int y,
+ int width,
+ int height,
+ gpointer unused)
{
GtkWidget *widget = gtk_css_gadget_get_owner (gadget);
GtkNotebook *notebook = GTK_NOTEBOOK (widget);
GtkNotebookPrivate *priv = notebook->priv;
if (gtk_notebook_has_current_page (notebook))
- gtk_container_propagate_draw (GTK_CONTAINER (notebook),
+ gtk_container_snapshot_child (GTK_CONTAINER (notebook),
priv->cur_page->child,
- cr);
+ snapshot);
return FALSE;
}
-static gboolean
-gtk_notebook_draw (GtkWidget *widget,
- cairo_t *cr)
+static void
+gtk_notebook_snapshot (GtkWidget *widget,
+ GtkSnapshot *snapshot)
{
GtkNotebook *notebook = GTK_NOTEBOOK (widget);
GtkNotebookPrivate *priv = notebook->priv;
- gtk_css_gadget_draw (priv->gadget, cr);
+ gtk_css_gadget_snapshot (priv->gadget, snapshot);
if (priv->operation == DRAG_OPERATION_REORDER)
- gtk_css_gadget_draw (priv->cur_page->gadget, cr);
-
- return FALSE;
+ gtk_css_gadget_snapshot (priv->cur_page->gadget, snapshot);
}
static gboolean
}
static gboolean
-draw_tab (GtkCssGadget *gadget,
- cairo_t *cr,
- int x,
- int y,
- int width,
- int height,
- gpointer data)
+snapshot_tab (GtkCssGadget *gadget,
+ GtkSnapshot *snapshot,
+ int x,
+ int y,
+ int width,
+ int height,
+ gpointer data)
{
GtkNotebookPage *page = data;
GtkWidget *widget;
widget = gtk_css_gadget_get_owner (gadget);
- gtk_container_propagate_draw (GTK_CONTAINER (widget),
+ gtk_container_snapshot_child (GTK_CONTAINER (widget),
page->tab_label,
- cr);
+ snapshot);
return gtk_widget_has_visible_focus (widget) &&
GTK_NOTEBOOK (widget)->priv->cur_page == page;
sibling,
measure_tab,
allocate_tab,
- draw_tab,
NULL,
+ snapshot_tab,
page,
NULL);
if (priv->tabs_reversed)
}
static gboolean
-gtk_notebook_draw_tabs (GtkCssGadget *gadget,
- cairo_t *cr,
- int x,
- int y,
- int width,
- int height,
- gpointer unused)
+gtk_notebook_snapshot_tabs (GtkCssGadget *gadget,
+ GtkSnapshot *snapshot,
+ int x,
+ int y,
+ int width,
+ int height,
+ gpointer unused)
{
GtkWidget *widget = gtk_css_gadget_get_owner (gadget);
GtkNotebook *notebook = GTK_NOTEBOOK (widget);
if (!gtk_notebook_page_tab_label_is_visible (page))
continue;
- gtk_css_gadget_draw (page->gadget, cr);
+ gtk_css_gadget_snapshot (page->gadget, snapshot);
}
if (children != NULL)
for (children = other_order; children; children = children->next)
{
page = children->data;
- gtk_css_gadget_draw (page->gadget, cr);
+ gtk_css_gadget_snapshot (page->gadget, snapshot);
}
g_list_free (other_order);
if (priv->arrow_gadget[i] == NULL)
continue;
- gtk_css_gadget_draw (priv->arrow_gadget[i], cr);
+ gtk_css_gadget_snapshot (priv->arrow_gadget[i], snapshot);
}
}
if (priv->operation != DRAG_OPERATION_DETACH)
- gtk_css_gadget_draw (priv->cur_page->gadget, cr);
+ gtk_css_gadget_snapshot (priv->cur_page->gadget, snapshot);
return FALSE;
}